package reflect;

import java.lang.reflect.Method;

/**
 * 利用注解传参来进行反射操作
 */
public class ReflectDemo8 {
    public static void main(String[] args) throws Exception {
        //自动执行Student中每个被@AutoRun修饰的方法若干次
        Class cls = Class.forName("reflect.Student");
        Object obj = cls.newInstance();

        Method[] methods = cls.getDeclaredMethods();
        for(Method method : methods){
            if(method.isAnnotationPresent(AutoRun.class)){
                //获取@AutoRun中value参数的值
                AutoRun autoRun = method.getAnnotation(AutoRun.class);
                int value = autoRun.value();//获取注解参数value的值
                System.out.println(
                   "自动执行方法:"+method.getName()+","+value+"次");
                for(int i=0;i<value;i++){
                    method.invoke(obj);
                }
            }
        }



    }
}
